import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        /**
         * 在不使用第三个变量的情况下交换两个int类型变量的值*/
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        int b = scanner.nextInt();

        // 1 方法1，使用赋值方法
//        a = (a + b) - (b = a);

        // 2 方法2，使用按位疑惑（两次消消乐）
        a = a ^ b;
        b = a ^ b; // 实际 a^b^b = a
        a = a ^ b; // 实际 a^b^a = b
        System.out.println(a+" "+b);
    }

    public static void main3(String[] args) {
        /**
         * 定义一个int类型变量i,i为由浮点数变量d四舍五入后的整数类型，请将转换后的i进行输出*/
        Scanner scanner = new Scanner(System.in);
        double d= scanner.nextDouble();

        int i = (int)d;
        if((int)d != (int)(d+0.5)) {
            i = (int)d + 1;
        }

        System.out.println(i);
    }

    public static void main2(String[] args) {
        /**
         * 输入两个正整数a和b，输出这两个正整数的和，差，积，商，模
         * （若a>b则输出a-b，a/b，a%b的值反之输出b-a，b/a，b%a的值，不考虑小数，请使用int类型）*/
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        if(a >= b) {
            System.out.print((a+b) + " ");
            System.out.print((a-b) + " ");
            System.out.print((a*b) + " ");
            System.out.print((a/b) + " ");
            System.out.print((a%b) + " ");
        } else {
            System.out.print((a+b) + " ");
            System.out.print((b-a) + " ");
            System.out.print((a*b) + " ");
            System.out.print((b/a) + " ");
            System.out.print((b%a) + " ");
        }
        scanner.close();
    }

    public static void main1(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double d = scanner.nextDouble();
        System.out.println(Main.typeConversion(d));
    }
    public static int typeConversion(double d){
        /**
         * 设计一个方法，将一个小于2147483647的double类型变量以截断取整方式转化为int类型*/
        int a = (int)d;
        return a;
    }
}